from typing import List, Optional

from pydantic import BaseModel

from .base import OutputBase


class MeetingInfo(BaseModel):
    # 会议 ID
    meeting_id: str

    # 会议 Code
    meeting_code: str

    # 会议主题
    subject: str

    # 创建者 userid
    userid: str

    # 创建者 ID 类型. 1：userid; 3：rooms_id
    userid_type: int

    # 创建者昵称
    nick_name: str

    # 会议开始时间，单位秒。
    start_time: int

    # 会议结束时间，单位秒。
    end_time: int

    # 在线人数。
    online_member_num: int

    # 会议状态。
    # 1：结束会议
    # 2：实时会议
    # 3：即将开始的会议
    meeting_state: int

    # 会议类型。
    # 0：一次性会议
    # 1：周期性会议
    # 6：网络研讨会
    meeting_type: int


class ListMeetingsData(BaseModel):
    # 当前页
    current_page: Optional[int] = None

    # 当前页实际大小
    current_size: Optional[int] = None

    # 数据总条数
    total_count: int

    # 数据总页数
    total_page: Optional[int] = None

    # 会议对象列表
    meeting_info_list: List[MeetingInfo]


class ListMeetingsOutput(OutputBase):
    data: Optional[ListMeetingsData]
